Enigma Amiga RunGli Articoli di EAR - DTV


FontMachine2 -Parte seconda -

di Andrea Favini (jimenigma@hotmail.com)

E rieccoci alle prese con FontMachine 2; questa volta andremo a fare una analisi più tecnica del programma. Vista la semplicità d'uso e la manualistica ben impostata non crediamo sia necessario propinarvi una lunga serie di tutorials, cogliendo comunque l'occasione per ricordarvi di comprare e non copiare il programma. L'interfaccia utente è già stata descritta la volta scorsa; l'unico appunto da fare riguarda i gadgets direzionali, che sono quei pulsanti contenenti un triangolino, presenti nelle sezioni di competenza degli effetti Sbalzo, Rilievo, 3D e Ombra (8 per zona): essi servono banalmente per indicare i quale direzione dovrà essere prodotto l'effetto.

Fm e Chip-RAM

Vediamo ora come FM utilizza la chip-ram. Come già accennato l'altra volta, le generazione del font sia in fase di preview che in fase di salvataggio avviene nella memoria grafica in quanto direttamente accessibile dalle funzioni grafiche del sistema operativo. Comunque, l'ambiente di lavoro è costituito da due sezioni distinte: in primo piano c'é l'editor, su uno schermo a mezza altezza, mentre dietro vi è lo schermo di lavoro in cui compaiono la palette e i preview del font e delle textures. In realtà le schermate aperte possono essere fino a quattro, infatti, per il rendering di una tessitura viene aperto uno schermo supplementare delle dimensione della medesima. Vista la voracità di memoria grafica è consigliabile chiudere il Workbench soprattutto su macchine ECS. Con la versione 1.05 può esservi capitato di maledire il mondo intero quando dopo avere creato un carattere bellissimo vi siete visti rispondere dal programma che non c'era memoria sufficiente per creare l'immagine del font. Bene quelli della ClassX hanno risolto il problema permettendo di generare i caratteri a blocchi (Maiuscole, minuscole, punteggiatura, numerici, internazionali e speciali), anche se consigliamo vivamente, soprattutto a chi ha solo 512k di chip-ram di non esagerare comunque con le dimensioni di font e textures (non è difficile superare il mezzo mega anche solo con un blocco). Entriamo ora nel particolare: quando si preme il pulsante "SALVA" compare un pannello mediante il quale è possibile fare la selezione dei blocchi e nel quale è visualizzata la quantità di memoria necessaria per questi. Una volta dato l'OK si passa alla fase di rendering e salvataggio: a questo punto FM di default chiama il colourfont con il nome del font bitmap di partenza aggiungendovi una "C" in fondo; è possibile comunque non adeguarsi a questa convenzione semplicemente cliccando su "Cancel" e immettendo manualmente il nome nel requester. Il nome del set di caratteri viene impostato in modo da avere la dimensione verticale in punti, un ". ", la risoluzione cromatica e infine una C. Assieme al font viene inoltre salvato un file con estensione "cmap" il quale contiene la palette a 24bit del font (infatti il salvataggio avviene con una palette a 12bit in modo da potere essere letta anche da Amiga ECS) che serve a chi possiede l'AGA per avere sempre la palette originale con cui è stato creato il font.

Tessiamo

Caratteristica fondamentale di questo programma è quella di potere utilizzare tessiture in diversi formati (bitmap, plasma e pattern), che rende possibile la creazione di lavori sempre nuovi e originali. Le bitmap non hanno bisogno di commenti, infatti sono banalmente immagini esterne in formato IFF o qualsiasi di cui si possiede la datatype(OS3+). Quelle degli altri due tipi sono generate internamente mediante funzioni matematiche con la sostanziale differenza che le plasma sono casuali, infatti molto adatte alla riproduzione di fenomeni naturali, mentre quelle di tipo pattern sono generate da funzioni matematiche ben precise. Nel primo tipo le uniche cose da impostare sono la dimensione in punti e il set di colori da usare, nel secondo caso invece è possibile inoltre definire il tipo di funzione matematica (lineare, quadratica, cubica, sinusoidale) tramite un bottone ciclico, specificandone i coefficenti. Vi è poi una serie di patterns predefiniti, con la possibilità di ampliare la lista utilizzando un semplice editor (ASCII) per modificare il file "FontMachine:presets/preset.set" il quale ha la seguente struttura:

  #PRESET PTT 1
    #PRESET "Enigma1" 1 1 2 0 1
    #PRESET ...........
    ........
    #END

La sintassi delle linee dei presets è:

  #PRESET "nome" modo cx cy inc div

dove con modo si indica il tipo di funzione

 0 = Lineare
 1 = Sinusoidale
 2 = Quadratica
 3 = Cubica

Non stiamo ora a dilungarci sui tre coefficenti successivi in quanto richiederebbero una trattazione matematica troppo lunga: o andate per tentativi oppure vi rassegante a prendere in mano i tanto odiati libri di matematica.

Colori

Ad ogni tessitura è assegnata una propria palette, per cui ogni volta che viene apportata una modifica al set di colori dell'ambiente di lavoro il programma esegue automaticamente, se l'opzione di remap automatico degli attributi è selezionata, il ricalcolo dei colori nella maniera che viene specificata nel preference-editor, altrimenti mediante il tasto "Ottimizza". Ci sono tre diversi sistemi di ricalcolo, ognuno dei quali risponde a diverse esigenze. Il "Veloce" è consigliabile con macchine lente, soprattutto in fase di prova. Il migliore, che è anche il più lento, è il Floyd-Steinberg, il quale è un metodo a correzione di errore che esegue una particolare retinatura nel tentativo di approssimare l'immagine a quella originale. Col sistema F-S però, essendo nato principalmente per la stampa, se i colori della palette di lavoro differiscono molto da quelli originali (o comunque sono molti meno rispetto a quelli usati dalle tessiture), la retinatura può risultare troppo elaborata e quindi dare risultati visivi non dei migliori. Il "Random" invece, rimappa mediante punti disposti casualmente, risultando utile solamente per chi vuole aumentare ulteriormente la casualità del proprio prodotto. Crediamo che meriti una particolare attenzione il modo con cui FM gestisce le sfumature di colori: infatti ogni set di colori si basa su 5 colori chiave definibili dall'utente in un numero minimo di 2, a seconda del tipo di sfumatura che si vuole generare. Ogni set di colori per cui non ha una risoluzione fissa, infatti la generazione delle sfumature avviene mediante una semplice interpolazione lineare tra i colori chiave impostati (per dirlo in parole più da comuni mortali, funziona più o meno come la funzione "Spread" di un qualsiasi palette-editor). Un consiglio che diamo è quello di utilizzare sempre textures plasma e brush grandi almeno quanto i caratteri (attenzione soprattutto alla larghezza che è variabile) per evitare brutte ripetizioni parziali, e se si vuole usare l'opzione di mappatura casuale (RndMap), di abbondare in modo da diversificare il più possibile le aree scelte volta per volta; invece nel caso di patterns, vista la loro perfetta simmetria se si vuole risparmiare memoria è possibile generarli anche più piccoli, aumentando però anche la densità dell'effetto.

FM e ARexx

FM possiede un set di comandi che copre interamente le funzioni offerte dal programma. La porta si chiama banalmente "FontMachine" e ogni comando può ritornare tre variabili:

 RC
 FM_ERROR
 FM_RESULT

La prima contiene, nel qual caso, il tipo di errore commesso (0 se tutto è andato bene), il quale viene poi specificato nella seconda. FM_RESULT, invece, contiene un eventuale dato ritornato da una funzione: ad esempio "GetFontMaxWidht" pone in essa il valore della larghezza del carattere più ampio. Tra gli script presenti nel pacchetto ne troviamo uno denominato "FM_RXShell" il quale apre una shell mediante la quale è possibile dialogare con il programma in linguaggio Arexx. Alcuni di voi staranno sicuramente pensando che questa citazione sia solo per esperti, sbagliando; infatti, tornando all'esempio precedente, basta scrivere il comando "GetFontMaxWidht" per avere nella linea successiva il dato desiderato (ovviamente il comando va dato dopo avere caricato un font). In se la sintassi è abbastanza semplice anche se alla fine comporre uno script non è proprio come bere un bicchiere d'acqua. Molto probabilmente se in futuro ci sarà spazio per qualche tutorial, sicuramente riguarderanno la stesura e l'utilizzo di Macro Arexx in quanto è la parte minormente coperta nel manuale. Nel frattempo se qualcuno volesse allenarsi, consigliamo di studiarsi gli esempi allegati, e di riciclare la prima parte, ovvero quella racchiusa tra le due righe di asterischi, la quale serve per aprire FM nel caso non fosse già stato lanciato il programma stesso.

Conclusioni

A conti fatti l'utilizzo di FontMachine è stato soddisfacente, considerando anche il fatto che non solo lo abbiamo impiegato per creazioni video (sia statiche che animate), ma anche per fare un biglietto di auguri e magari in futuro lo utilizzeremo anche per arricchire la nostra pagina WEB. Siamo comunque in trepidante attesa dell'uscita delle librerie PowerPC, annunciate già per X-DVE, visto che ormai le nuove board della phase5 dovrebbero essere disponibili e a breve si spera di vedere l'A/Box o eventuali nuovi Amiga.


Copyright Enigma Amiga Run - Enigma Amiga Run it's a G.R.Edizioni publications - for contact us mailto yuri@skylink.it